package com.gateway.filter;

import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.core.Ordered;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Mono;

/**
 * <dl>
 * <dd>描述: ~ url过滤器</dd>
 * <dd>创建时间：  11:29 2020/5/12</dd>
 * <dd>创建人： zz</dd>
 * <dt>版本历史: </dt>
 * <pre>
 * Date         Author      Version     Description
 * ------------------------------------------------------------------
 * 2020/5/12      guodong       1.0        1.0 Version
 * </pre>
 * </dl>
 */
@Component
public class UrlFilter implements GlobalFilter,Ordered{

    //http://127.0.0.1:9101/goods/brand ----> goods/brand ---->brand
    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        //将用户请求资源地址交给大数据风控部门研究
        String path = exchange.getRequest().getURI().getPath();
        System.out.println("用户请求的资源地址是： " + path);
        return chain.filter(exchange);
    }

    /**
    * @Date: 9:21 2020/5/13
    * @Param: []
    * @return: int
    * @Description: 需要注意配置文件中的路由本质上也是一个过滤器，优先级别是2，
     * 那么当用户自定义的过滤器优先级别也是2时，优先执行配置文件中的路由过滤器，
     * 这时就要求用户定义的过滤器优先级别小于2
    **/
    @Override
    public int getOrder() {
        return 1;
    }
}
